/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.bitoon.basketdudes.ws;

import com.bitoon.basketdudes.jpa.Equipo;
import com.bitoon.basketdudes.jpa.Jugador;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
 *
 * @author paco
 */
public class Item {

    // Datos de la transacción
//    public  int     equipo_id; // equipo que realiza la compra o venta
    public  int     m_unidades;  // unidades a comprar del objeto

    // Datos del Item a comprar
    public  int     item_id;

    public  float   creditos;   // precio en bitoones
    public  int     puntos;     // precio en duddies

    public  int     stock;
    public  int     vendidas;
    
    public  int     nivel;
    public  short   uds_equipo; // Máximo de unidades por equipo permitidas para el item

    public  int     unidades_equipo_actuales;  // unidades por equipo actualmente compradas

    public  Date    f_ini;
    public  Date    f_fin;

    public  int     estado; // 0 inactivo no se puede comprar
                            // 1 TIENDA, CHESTBALL Y GASHABALL
                            // 2 SOLO CHESTBALL O GASHABALL
                            // 3 SOLO TIENDA
                            //
    public int      dias;   // Dias de caducidad, 0 - sin caducidad
    
    // En el caso de ventas a la banca de jugadores, incluye el id de instancia del jugador vendido para su trazabilidad
    private String  m_concepto; 
    private Jugador m_jugador; 

    public void asignarValores (
                           //int   p_equipo_id,
                           //                 int   p_unidades,
                           float p_creditos, int    p_puntos,
                           int   p_stock   , int    p_vendidas,
                           int   p_nivel   , short  p_uds_equipo,
                           Date  p_f_ini   , Date   p_f_fin,
                           int   p_estado  , int    p_dias
                           ) {
        //equipo_id   = p_equipo_id;
        //unidades    = p_unidades;
        creditos    = p_creditos;
        puntos      = p_puntos;
        stock       = p_stock;
        vendidas    = p_vendidas;
        nivel       = p_nivel;
        uds_equipo  = p_uds_equipo;
        f_ini       = p_f_ini;
        f_fin       = p_f_fin;
        estado      = p_estado;
        dias        = p_dias;
    }

    Item () {
        //equipo_id   = 0;
        //unidades    = 0;
        creditos    = 0;
        puntos      = 0;
        stock       = 0;
        vendidas    = 0;
        nivel       = 0;
        uds_equipo  = 0;
        f_ini       = null;
        f_fin       = null;
        estado      = 0;
        dias        = 0;
        m_lista_instancia= null;
        m_jugador   = null;

        this.resetListaInstancia();
    }

    int  getUnidades(  )         { return m_unidades; }
    void setUnidades( int valor ){ m_unidades = valor; }

    int  getUdsEquipo(  )         { return uds_equipo; }
    void setUdsEquipo( int valor ){ m_unidades = valor; }

    private Object  m_objeto;

    public void   setObjeto( Object p_objeto) { m_objeto= p_objeto; }
    public Object getObjeto( ) { return m_objeto; }

    private Equipo  m_equipo;

    public void   setEquipo( Equipo p_objeto) { m_equipo= p_objeto; }
    public Equipo getEquipo( ) { return m_equipo; }

    public void   setConcepto( String p_valor ) { m_concepto= p_valor; }
    public String getConcepto( ) { return m_concepto; }

    public void    setJugador( Jugador p_valor ) { m_jugador= p_valor; }
    public Jugador getJugador( ) { return m_jugador; }
    
    /* Hueco para guardar instancias para objetos */
    private List<Object> m_lista_instancia;
    //private Object  m_instancia;

    public void         resetListaInstancia ( ){
        if ( m_lista_instancia == null)
            m_lista_instancia= new ArrayList();
        
        m_lista_instancia.clear();
    }
    public void         addInstancia        ( Object p_objeto) { m_lista_instancia.add(p_objeto); }
    public List<Object> getListaInstancia   ( ) { return m_lista_instancia; }

}
